#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<fcntl.h>
#include<time.h>
#include<libgen.h>
int main(int argc,  char* args[]){
     struct stat fst;
        // stat(const char*,struct stat*); 这里面的结构体指针是指一个结构体变量的地址；
    if(stat(args[1],&fst)!=0){
        printf("%s 不存在请检查\n",args[1]);
        exit(-1);
    }else{
       
        char mtime[30];
        char *filename=basename(args[1]);
    
        switch (fst.st_mode&S_IFMT)
        {
        case S_IFDIR:
            printf("目录");
            /* code */
            break;
        case S_IFREG:
            printf("普通文件");
            break;

        
        default:
            printf("其他文件");
            break;
        }
        if(fst.st_mode&S_IRUSR) printf("可读");
        if(fst.st_mode&S_IWUSR) printf("可写");
        if(fst.st_mode&S_IXUSR) printf("可执行");
        printf("\n");
        struct tm *p=localtime(&fst.st_mtim.tv_sec);
        strftime(mtime,sizeof(mtime),"%Y-%m-%d, %b,  %H:%M:%S, timezone:%Z",p);
        time_t last_modify_time = fst.st_mtim.tv_sec;
        printf("文件%s:\n大小:%ld字节,\t用户:%d,\t组用户:%d;\n最后修改时间:%s\n",filename,fst.st_size,fst.st_uid,fst.st_gid,mtime); //ctime(&last_modify_time)
    }
    return 0;

}